'''

在Python中，多个线程间的同步可以通过以下几种方式实现：
使用Lock（锁） - 最基本的同步机制
使用RLock（可重入锁） - 允许同一个线程多次获取锁
使用Semaphore（信号量） - 控制同时访问资源的线程数量
使用Condition（条件变量） - 用于线程间的复杂协调
使用Event（事件） - 简单的线程通信机制


'''


import threading

# 共享资源
counter = 0
lock = threading.Lock()

def worker():
    global counter
    for _ in range(100000):
        # 获取锁
        lock.acquire()
        try:
            counter += 1
        finally:
            # 释放锁
            lock.release()

# 创建多个线程
threads = []
for _ in range(5):
    t = threading.Thread(target=worker)
    threads.append(t)
    t.start()

# 等待所有线程完成
for t in threads:
    t.join()

print(f"最终计数器值: {counter}")
